Like characters, pointers can be (carefully!) mixed with integer values in expressions. A pointer represents a machine address, which is itself a (usually long) integer. However, C simplifies pointer arithmetic by making use of the known size of the data type pointed to by the pointer. Thus, if f_ptr is declared as a pointer to a floating-point value on a machine where each float requires 4 machine addresses, then (f_ptr + 1) points 4 machine addresses beyond f_ptr.
Since arrays are stored contiguously, this means that if a pointer represents the address of an element of the array, then incrementing the pointer will cause it to point to the next element of the array, regardless of the type of the array. The following assigns the value 100 to element 6 of the array: